home *** CD-ROM | disk | FTP | other *** search
/ Qu.......ke Neue Level / KroGer Software GmbH - Qu_ke.iso / UTILITY / PRG8.ZIP / QEU.H < prev    next >
C/C++ Source or Header  |  1996-03-02  |  5KB  |  163 lines

  1. /*
  2.  * Copyright (C) 1996 by Raphael Quinet.  All rights reserved.
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software and
  5.  * its documentation for any purpose and without fee is hereby
  6.  * granted, provided that the above copyright notice appear in all
  7.  * copies and that both that copyright notice and this permission
  8.  * notice appear in supporting documentation.  If more than a few
  9.  * lines of this code are used in a program which displays a copyright
  10.  * notice or credit notice, the following acknowledgment must also be
  11.  * displayed on the same screen: "This product includes software
  12.  * developed by Raphael Quinet for use in the Quake Editing Utilities
  13.  * project."  THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR
  14.  * IMPLIED WARRANTY.
  15.  *
  16.  * More information about the QEU project can be found on the WWW:
  17.  * "http://www.montefiore.ulg.ac.be/~quinet/games/editing.html" or by
  18.  * mail: Raphael Quinet, 9 rue des Martyrs, B-4550 Nandrin, Belgium.
  19.  */
  20.  
  21. /*
  22.  * QEU.H - Main defines for all programs.
  23.  *
  24.  * This file was derived from DEU.H (Doom Editing Utilities 5.3),
  25.  * written by the DEU Team: Raphael Quinet, Brandon Wyber, Ted
  26.  * Vessenes and others.
  27.  *
  28.  * Note: I assume that this file is included first in all *.C files, so
  29.  *       there is no need to include it in other *.H files.
  30.  */
  31.  
  32. #ifndef _QEU_H_
  33. #define _QEU_H_
  34.  
  35. #define QEU_VER_NUM             "0.3"  /* the version number */
  36.  
  37.  
  38. /*
  39.  * Common includes (for all systems/compilers).
  40.  */
  41.  
  42. #include <stdio.h>
  43. #include <stdlib.h>
  44. #include <string.h>
  45. #include <stdarg.h>
  46. #include <ctype.h>
  47.  
  48.  
  49. /*
  50.  * Compiler- and OS-specific includes and definitions.
  51.  */
  52.  
  53. #if !defined(QEU_UNIX) && !defined(QEU_DOS)
  54. /* if the right symbols have not been passed to the compiler from the
  55.    Makefile or project file, then we have to guess them.
  56. */
  57. #if defined(__TURBOC__)
  58. /* if QEU is compiled with Borland C / Turbo C */
  59. #define QEU_OSCOMPILER          "BC-BGI"
  60. #define QEU_DOS                 /* mess-DOS */
  61. #define QEU_GFX_BGI             /* BGI graphics */
  62.  
  63. #elif defined(__GO32__)
  64. /* if QEU is compiled with DJGPP (GCC + GO32) */
  65. #define QEU_OSCOMPILER          "GCC-GRX"
  66. #define QEU_DOS                 /* mess-DOS */
  67. #define QEU_GFX_GRX             /* GRX graphics */
  68. #define far                     /* no far pointers */
  69. #define huge                    /* no huge pointers */
  70.  
  71. #elif defined(__sgi)
  72. /* if QEU is compiled on an SGI (compiler doesn't matter) */
  73. #define QEU_OSCOMPILER          "SGI-GL"
  74. #define QEU_UNIX                /* UNIX operating system */
  75. #define QEU_GFX_SGI             /* SGI graphics (GL) */
  76. #define far                     /* no far pointers */
  77. #define huge                    /* no huge pointers */
  78. #define FAT_ENDIAN              /* MSB last */
  79.  
  80. #elif defined(__UNIX__) || defined(__unix)
  81. /* if QEU is compiled on some UNIX system (compiler doesn't matter) */
  82. #define QEU_OSCOMPILER          "UNIX-X11"
  83. #define QEU_UNIX                /* UNIX operating system */
  84. #define QEU_GFX_X11             /* X Window graphics (X11) */
  85. #define far                     /* no far pointers */
  86. #define huge                    /* no huge pointers */
  87. /*! more big endian systems should be added here... AIX? HP? */
  88. #if defined(_BIG_ENDIAN) || defined(__sun)
  89. #define FAT_ENDIAN              /* MSB last */
  90. #endif
  91.  
  92. #else
  93. #error Cannot guess your operating system type.  Check the Makefile.
  94. #endif
  95. #endif /* !QEU_UNIX && !QEU_DOS */
  96.  
  97. #ifndef QEU_OSCOMPILER
  98. #define QEU_OSCOMPILER          "(Unknown)"
  99. #endif
  100.  
  101. /* the full version number (including OS or compiler) */
  102. #define QEU_VERSION             QEU_VER_NUM " " QEU_OSCOMPILER
  103.  
  104.  
  105. /*
  106.  * Some useful typedefs for integer types.  The default "int" type
  107.  * should be used when the number of bits doesn't matter or when using
  108.  * va_arg with integer constants.  Never use "long" or "short"
  109.  * directly in the code, because the number of bits may vary (e.g. DEC
  110.  * Alpha: long = 64 bits).  Always use these typedefs instead.  They
  111.  * will be modified if QEU is ported to "exotic" systems.  This is
  112.  * easier than having to modify all source files...
  113.  */
  114. typedef char           Int8;
  115. typedef short          Int16;
  116. typedef long           Int32;
  117. typedef unsigned char  UInt8;
  118. typedef unsigned short UInt16;
  119. typedef unsigned long  UInt32;
  120.  
  121. /*
  122.  * Some useful typedefs for floating-point numbers.  These should be
  123.  * used instead of the native types, in order to increase portability
  124.  * (see the previous comment for integer types).
  125.  */
  126. typedef float          Float32;
  127. typedef double         Float64;
  128.  
  129. /*
  130.  * Boolean data: can be TRUE or FALSE.
  131.  */
  132. typedef int            Bool;
  133.  
  134.  
  135. /*
  136.  * The macros and constants.
  137.  */
  138.  
  139. /* get the maximum and minimum of two integers */
  140. #define MAX(a, b)              (((a) > (b)) ? (a) : (b))
  141. #define MIN(a, b)              (((a) < (b)) ? (a) : (b))
  142.  
  143. /* get a random number */
  144. #ifdef __TURBOC__
  145. #define RANDOM(x)              (random(x))
  146. #define RANDOMIZE()             randomize()
  147. #else
  148. #define RANDOM(x)              (random() % (x))
  149. #define RANDOMIZE()             srand((int) time(NULL))
  150. #endif
  151.  
  152. /* boolean constants */
  153. #ifndef TRUE
  154. #define TRUE                    1
  155. #define FALSE                   0
  156. #endif
  157.  
  158. /* other symbols */
  159. #define QEU_INDEX_FILE          "Index.txt"
  160.  
  161. #endif /* _QEU_H_ */
  162. /* end of file */
  163.